include "module.thrift"

namespace java com.to8to.thrift.diary.scene
namespace php com.to8to.thrift.diary.scene

/**
 */
    /** ========== 查询现场 ================================================ */
    
struct ListScenesRequest{
    /** 查询字段 【必填】 可选值:1.【查询内容】中的字段名 2."_ALL" 列出所有现场 */
    1:list<string> fields 
 
    /** 查询内容 */
    
    /** 现场ID 【选填】 */
    6:list<string> _ids 
    /** 需要排除的现场id 【选填】 */
    7:list<string> exclude_ids 
    /** 【选填】 */
    8:list<i32> style 
    /** 住房面积范围 【选填】 */
    9:module.TRange area_range 
    /** 总预算范围 【选填】 */
    10:module.TRange budget_range 
    /** 1:精选 【选填】 */
    11:i32 ftime 
    /** 1:置顶 【选填】 */
    12:i32 op_top 
    /** 业主ID 【选填】 */
    13:list<string> owner_ids 
    /** 装修公司id 【选填】 */
    14:list<i32> com_ids 
    /** 小区名称 【选填】 前端传来正则表达式，需要调通 */
    15:string comm_name 
    /** 工地阶段 【选填】 */
    16:list<i32> gongdijds 
    /** 现场大阶段 【选填】 */
    17:list<i32> progress_ids 
    /** 过滤结果 【选填】 */
    19:list<i32> filter_result 
    /** 项目ID 【选填】 */
    20:list<string> project_ids 
    /** 是否包含project_id 【选填】 可选值:1:包含 2:不包含 */
    21:i32 has_project_id 
    /** 装修公司设置的现场 【选填】 */
    22:string name_c 
    /** 是否展示到博客首页 【选填】 是否展示到博客首页 0:否 >0 是 */
    23:i32 show_index=0 

    /** 装修承包类型 【选填】 */
    24:list<i32> type_ids 
    /** 装修类型_1 【选填】 */
    25:i32 cgate 
    /** 装修公司名称 【选填】 */
    26:string com_name 
    /** 用户创建的现场名称 【选填】 */
    27:string name_u 
    /** 城市id 【选填】 */
    28:list<i32> city_ids 
    /** 创建时间范围 【选填】 */
    29:module.TRange ctime_range 
    /** 统计值 【选填】 可选值:见SCENE_OWNER_XX定义 */
    36:i32 owner_type 
    /** 状态 【选填】 */
    37:list<i32> status=[1] 
    /** 默认0，若设置为1则只查询有封面的现场 */
    38:i32 hasCoverImg=0 
    /** 默认0，若设置为1则只查询有封面的装修公司现场 */
    40:i32 hasCoverImg_c=0 
 
    /** 区id 【选填】 */
    34:list<i32> town_ids 
    /** 是否已读 【选填】 */
    35:bool used 
    /** 0:不显示；1 显示 EmptyScene代表没有status为1的日记的现场 */
    39:i32 showEmptyScene = 0 
    /** 设计方案id 【选填】 */
    45:list<i32> case_ids 
    /** 电话号码 【选填】 */
    61:list<string> phones 
    /** 发布来源 【选填】 可选值:PUBLISH_SCENE_XXX */
    46:list<i32> publish_sources 
 
    /** 是否要包含日记 【选填】 可选值:0:不包含日记;1:包含日记 */
    47:i32 with_diary 
    /** 发布来源 【选填】 可选值:PUBLISH_SCENE_XXX */
    62:list<i32> diary_publish_sources 
    /** 发布来源 【选填】 可选值:PLATFORM_XXX */
    63:list<i32> diary_platform 
    /** 最多显示日记数 【选填】 */
    48:i32 diary_limit=3 
    /** 日记排序方式 【选填】 */
    49:list<module.TSortField> diary_sort 
    /** 日记状态 【选填】 */
    55:list<i32> diary_status 
 
    /** 查询控制 */
	/** 精确查询列表 【选填】，该数组中提到的字段都用精确匹配，而不用正则匹配 */
	56:list<string> equal_search_fields;
    /** 【必填】 */
    30:list<module.TSortField> sort 
    /** 【选填】 */
    31:i32 offset=0 
    /** 【选填】 */
    32:i32 limit=10 
 
    /** 【选填】 前端需要跟踪时设置该字段 */
    50:string trace_tag 
    /** 根据小区id查询 */
    51:list<i32> comm_ids 
    /** 根据户型查询 */
    52:list<i32> house_types 
    /** 返回结果字段集合 */
    53:list<string> resultFields 
}

struct ListSceneRawRequest{
 1:string filter_json
 
    /** 【选填】 前端需要跟踪时设置该字段 */
    6:string trace_tag 
 
    /** 可以根据多个排序字段作组合排序 */
    14:list<module.TSortField> sort 
    16:i32 offset=0                                 
    17:i32 limit=0     
}

struct ListScenesResponse
{
    1:string res="succ"
    3:i32 total
    4:i32 offset
    5:i32 limit
    6:list<module.TScene> results
    /** 操作耗时 */
    7:i32 timespend 
 10:string trace_tag   
}

    /** ========== 创建现场 ================================================ */
    
    /** 要注意_id和stat不许在这里设置，所以thrift反序列化之后要把这两个字段remove掉 */
    
struct CreateSceneRequest{
    /** 【必填】 可选值:见【module.TScene】中说明 */
    6:module.TScene scene 
    /** 【选填】 前端需要跟踪时设置该字段 */
    10:string trace_tag 
}

    /** ========== 更新现场 ================================================ */
    
struct UpdateSceneRequest{
    /** 【必填】 */
    1:string _id 
    /** 操作字段 【必填】 可选值:【TScene】中的字段名 */
    2:list<string> fields 
 
    /** 【必填】 可选值:见【module.TScene】中说明 */
    6:module.TScene scene 	
	
    /** 是否是用户操作 */
    25:bool is_user_do = true 
    /** 【选填】 前端需要跟踪时设置该字段 */
    26:string trace_tag 
	
	/** 是否需要校验user_id和owner_id */
	7:i32 need_validate=0
	
	8:string user_id
}  
  
struct UpdateSceneRawRequest
{
    /** {"_id":"12324"} */
    1:string filter_json 
    /** {"name":"new name", "owner_id":"123"} */
    2:string set_json 
    /** {"picnum", 1} */
    3:string inc_json 
}

    /** ========== 删除现场 ================================================ */
    
struct DeleteSceneRequest
{
    /** 【必填】 */
    1:list<string> _ids 
    /** 【选填】 前端需要跟踪时设置该字段 */
    10:string trace_tag 
}

    /** ==========查询装修公司============================================================ */
    
struct ListCompaniesRequest{
	1:list<string> fields 			   /** [必填]生效字段*/
	51:list<string> no_shows		   /** [选填]显示结果筛选*/
	2:list<i32> com_ids	               /** [选填]公司id */	
	3:list<i32> city_ids               /** [选填]城市id */	
	4:list<i32> comm_ids	           /** [选填]小区id */	
	5:list<i32> status 		       /** [选填]状态*/		
	
	20:i32 with_scene=0				   /** 是否包含现场*/
	21:i32 scene_limit=0			   /** [选填]最多显示现场数*/
	22:list<module.TSortField> scene_sort /** [with_scene=1时必填]现场排序方式*/
	23:list<i32> scene_status		   /** [选填]现场状态*/
	24:string owner_group				/** 用户组:y:用户 j:监理 */
	25:i32 min_owner_count=5               /** 最小统计数量*/
	26:i32 hasCoverImg_c=0 				/** 是否包含装修公司封面*/	
    27:list<i32> gongdijds 				/** 工地阶段 */	
    28:list<i32> publish_sources 		/** 发布来源 可选值:PUBLISH_SCENE_XXX */
	
	/** 查询控制 */
    31:i32 offset=0                    /** [选填]*/
    32:i32 limit=10        /** [选填]*/
 33:list<module.TSortField> sort    /** [选填]排序方式*/
 
 50:string trace_tag 
}

struct ListCompaniesResponse{
 1:string res="succ"                             /** 请求执行结果 */ 
 3:map<i32, list<module.TScene>> results      /** 结果。key：装修公司id(注意为string)，value：该小区下的现场集合 */
 5:map<i32,i32> results_counts         /** 结果统计。key：装修公司id(注意为string)，value：该装修公司下的工地集合总数 */
    /** 跟踪字段 */
    10:string trace_tag 
}

    /** ========== 查询小区 ================================================ */
    
/**
 * 根据小区id查询小区信息，接口请求参数类
 */
struct ListCommunityRequest
{
 1:list<string> fields       /** [必填]生效字段*/
 2:list<i32> comm_ids               /** [选填]小区id */
 13:string comm_name       /** [选填]小区名字 */
 3:list<i32> city_ids               /** [选填]城市id */
 4:list<i32> house_types            /** [选填]户型 */
 5:module.TRange area_range         /** [选填]面积范围 */
 6:module.TRange budget_range       /** [选填]预算范围 */
 7:list<i32> town_ids               /** [选填]区域id */
 8:list<i32> style                  /** [选填]风格 */
 11:i32 has_com_id=0       /** [选填]包含装修公司*/
 12:i32 has_cover_img_c=0     /** [选填]包含装修公司的封面*/
 16:list<i32> gongdijds      /** [选填]工地进度*/
 14:list<i32> publish_sources    /** [选填]工地来源*/
 15:list<i32> status       /** [选填]状态*/
 17:module.TRange utime_range   /** [选填]创建时间范围*/
 18:i32 has_city_id				/** [选填]包含城市id*/
 
 20:i32 with_scene=0       /** 是否包含现场*/
 21:i32 scene_limit=3      /** [选填]最多显示现场数*/
 22:required list<module.TSortField> scene_sort /** [必填]现场排序方式*/
 23:list<i32> scene_status     /** [选填]现场状态*/
 
    /** 查询控制 */
    
    31:i32 offset=0                    /** [选填]*/
    32:i32 limit=10        /** [选填]*/
 
 50:string trace_tag    
}

/**
 * 根据小区id查询现场信息，接口响应参数类
 */
struct ListCommunityResponse
{
 1:string res="succ"                             /** 请求执行结果 */ 
 2:map<i32, list<module.TScene>> results      /** 结果。key：小区id(注意为string)，value：该小区下的现场集合 */
 5:map<i32,i32> results_counts         /** 结果统计。key：小区id(注意为string)，value：该小区下的现场集合总数 */
 3:string trace_tag                              /** 请求跟踪字段 */    
 4:i32 total          /** */           
}
